The present invention relates to the electrical, electronic and computer arts, and, more particularly, to programming languages & compilers, and the like.
Reusable software components are now widely available from numerous sources: standard programming language libraries, third-party libraries, online code repositories, as well as web service application programming interfaces (APIs). A typical mobile application with social networking capabilities may even make use of all of these facilities. Nonetheless, very few software components make their quality guarantees known to consumers. In the case of web services, communication over inherently unreliable networks means that even reliable components need to expect intermittent faults. Unfortunately, prior research shows that programmers rarely handle faults correctly. Given a long enough running time, the chance that a program will encounter at least one error-inducing input is high.